// const app = express()
import { setBatchCookies } from '../utils/index.js'
import functions from './send.js'
import CloudClient from './login.js'
import API from './index.js'
export function setCloudDiskServerFn(app) {
  app.use((err, req, res, next) => {
    console.error('报错了', err)
    res.status(500).send(err.stack)
  })
  // 设置全局的cookies
  app.post('/login', async (req, res) => {
    const cloudClient = new CloudClient(req.body.username, req.body.password)
    cloudClient
      .login()
      .then((cookies) => {
        if (cookies) {
          res.status(200).json({
            res_code: 0,
            res_message: '成功',
            data: cookies.cookies,
          })
        }
        //   console.log(loginres)
      })
      .catch((err) => {
        console.log('登录失败 >>>', err)
        res.status(500).json({
          result: -17,
          res_message: err,
        })
      })
  })
  app.post('/getObjectFolderNodes', (req, res) => {
    functions
      .sendPostRequest(req.body, req.cookies)
      .then((el) => {
        res.status(200).json({
          message: 'success',
          data: el.data,
        })
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  // POST 请求处理器
  app.post('/renameFolder', (req, res) => {
    functions
      .sendRenameFolder(req.body, req.cookies)
      .then((el) => {
        res.status(200).json(el.data)
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  //   POST 获取文件列表
  app.post('/getListFiles', (req, res) => {
    functions
      .sendListFiles(req.body, req.cookies)
      .then((el) => {
        // console.log('el1 >>>', el)
        if (el.data) {
          res.status(200).json(el.data)
        } else {
          res.status(500).json(el)
        }
      })
      .catch((err) => {
        // console.log('err2 >>>', err)
        res.status(500).json({ res_code: -1 })
      })
  })
  // 获取回收站列表
  app.post('/getRecycleList', (req, res) => {
    functions
      .getRecycleList(req.cookies)
      .then((el) => {
        // console.log('el1 >>>', el)
        if (el.data) {
          res.status(200).json(el.data)
        } else {
          res.status(500).json(el)
        }
      })
      .catch((err) => {
        // console.log('err2 >>>', err)
        res.status(500).json({ res_code: -1 })
      })
  })
  //   POST 获取分享的文件列表
  app.post('/getListShareDir', (req, res) => {
    const shareParams = {
      noCache: Math.random(),
      shareId: req.body.shareId,
      fileId: req.body.fileId,
      shareDirFileId: req.body.fileId,
      isFolder: true,
      shareMode: req.body.shareMode,
      orderBy: 'filename',
      descending: false,
    }

    // console.log(' 获取分享的文件列表>>>', req.body)
    functions
      .getShareInfoAPI(shareParams, req.cookies)
      .then((el) => {
        // console.log('el1 >>>', el)
        res.status(200).json(el)
      })
      .catch((err) => {
        // console.log('err2 >>>', err)
        res.status(500).json({ res_code: -1 })
      })
  })
  //   POST 获取分享链接信息
  app.post('/getLinkInfo', (req, res) => {
    // console.log(' 获取分享链接信息>>>', req.body)
    functions
      .getShareLinkAPI(req.body.shareCode, req.cookies)
      .then((el) => {
        // console.log('el1 >>>', el.data)
        res.status(200).json(el.data)
      })
      .catch((err) => {
        // console.log('err2 >>>', err)
        res.status(500).json({ res_code: -1 })
      })
  })
  //   POST 请求处理器
  app.post('/getFullPath', (req, res) => {
    functions
      .sendFullPath(req.body, req.cookies)
      .then((el) => {
        res.status(200).json(el.data)
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  //  任务
  app.post('/createFolder', (req, res) => {
    functions
      .createFolder(req.body, req.cookies)
      .then((el) => {
        res.status(200).json(el.data)
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  // 批量任务（例如【删除】）
  app.post('/createBatchTask', (req, res) => {
    API.createBatchTask(req.body, req.cookies)
      .then((el) => {
        API.checkBatchTaskFn({ taskId: el.data.taskId, type: req.body.type, cookies: req.cookies, result: res })
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  app.post('/checkBatchTask', (req, res) => {
    functions
      .checkBatchTask(req.body, req.cookies)
      .then((el) => {
        res.status(200).json(el.data)
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  // 获取登录名
  app.post('/getLoginName', async (req, res) => {
    functions
      .getLoginName(req.cookies)
      .then((el) => {
        if (el.data) {
          res.status(200).json(el.data)
        } else {
          res.status(500).json(el)
        }
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
  // 获取登录名
  app.post('/getUserBriefInfo', async (req, res) => {
    functions
      .getUserBriefInfo(req.cookies)
      .then((el) => {
        if (el.data) {
          res.status(200).json(el.data)
        } else {
          res.status(500).json(el)
        }
      })
      .catch((err) => {
        res.status(500).json(err)
      })
  })
}
